package com.film.service;

import java.util.List;

import com.film.domain.Review;
import com.film.domain.ReviewAndFilm;

/**
 * 该业务类是用来做评论的业务
 * @author 唐永林
 */
public interface ReviewService {
	/**
	 * 该方法用来做评论的添加
	 * @param review  评论对象
	 * @return 返回影响的行数
	 */
	public int insertReview(int uId,int filmId,String content,Float revScore);
	/**
	 * 通过电影id查询所有的评论
	 * @param FilmId 电影id
	 * @return
	 */
	public List<Review> selectAllReview(int filmId);
	/**
	 * 该方法用来做用户的评论验证
	 * @param filmId 电影id
	 * @param uId 用户id
	 * @return 返回一条评论
	 */
	public Review selectReviewInfo(int filmId,int uId);
	/**
	 * 对用户的评论进行修改
	 * @param filmId 电影id
	 * @param uId 用户id
	 * @return
	 */
	public int updateReview(int uId,int filmId,String content,Float revScore);
	/**
	 * @param praise 点赞的数量
	 * @param revId 评论id
	 * @return
	 */
	public int updateReviewPraise(int praise,int revId);
	/** 
	 * 该方法用来做电影评分的查询  用来做计算
	 * @param film_id 电影id
	 * @return
	 */
	public ReviewAndFilm selectFilmReviewScore(int film_id);

	/**
	 * 该方法用来查询评论表的全部信息49969920
	 * @param
	 * @return 返回一个装有所有信息对象Review的list集合
	 */
	List<Review> selectReview();
	
	/**
	 * 该方法用删除相对应的评论49969920
	 * @param int rev_id
	 * @return 返回一个int
	 */
	int deleteReviewById(int rev_id);
	
	/**
	 * 该方法用来查询并且进行分页49969920
	 * 通过传参锁确定从第几个
	 * @param
	 * @return 返回一个装有所有信息对象Review的list集合
	 */
	List<Review> selectlimit(int a);
	
	/**
	 * 该方法用来做点赞表的删除  （删除评论时绑定的外键）
	 * @param reviewId 评论id
	 * @return
	 */
	int deleteReviewPraise(int reviewId);

	/**
	 * 删除评论后重新计算电影评分
	 * @param revId 评论id
	 * @return
	 */
	int updateReviewScore(int revId);
}
